;(function(){
  'use strict';
  angular.module('controllers.omdisplay.busAssessment')
    .controller('provAssessCtrl',provAssessCtrl)
    .controller('provAssessViewCtrl',provAssessViewCtrl);
  /**
   * 对省考核控制器
   * @param   $scope          作用域
   * @param   ProvAQueryObj   提供查询相关参数及查询方法
   * @param   ProvASelector   下拉选项菜单
   */
  function provAssessCtrl($scope,ProvAQueryObj,ProvASelector){
    //初始化页面下拉选项
    $scope.selector = ProvASelector.selector;
    //赋予日期选择初始值
    $scope.date = ProvAQueryObj.getDateParam();
    //列表图表切换由对象内部show属性控制 
    $scope.flag = ProvAQueryObj.getFlag();
    //查询参数对象
    $scope.provAssessment = ProvAQueryObj.getQueryParam();
    
    //监听账期选取变化,以重新初始化对应日期值
    $scope.$watch('provAssessment.timeType',function(newValue,oldValue){
      if(newValue === oldValue){
        return;
      }
      $scope.date = ProvAQueryObj.getDateParam();
    },true);
    
    //监听表单验证广播,时间选择错误,则不允许查询
    $scope.$on('formInvalid',function(eo,flag){
      $scope.quarterInvalid = flag;
    });

    //对省考核查询方法
    $scope.provAssessQuery = ProvAQueryObj.provAssessQueryFn;
  }

  provAssessCtrl.$inject = ['$scope','ProvAQueryObj','ProvASelector'];
  /**
   * 对省考核展示controller
   * @param   $scope        作用域
   * @param   COREDATA      提供公共数据
   * @param   ProvAQueryObj 提供查询相关参数及查询方法
   * @param   ProvAViewObj  提供页面展示数据
   */
  function provAssessViewCtrl($scope,COREDATA,ProvAQueryObj,ProvAViewObj){
    //导出路径
    $scope.exportUrl = COREDATA.FORMPREFIX+'OMdisplay/assessment/provincialExport';
    //交易类型['充值','缴费','签约']对应code的数组
    $scope.tradeType = ProvAViewObj.getTradeType();
    //绑定导出参数
    $scope.exportParam = ProvAQueryObj.getExportParam();
    //获得页面用数据对象
    $scope.viewObj = ProvAViewObj.getViewObj();
    //设置账期标题
    $scope.exportParam.dateTitle = $scope.viewObj.duration; 
  }

  provAssessViewCtrl.$inject = ['$scope','COREDATA','ProvAQueryObj','ProvAViewObj'];
})();
